#ifndef LEXICAL_H
#define LEXICAL_H
#include <stddef.h>
/*
 * @return token, null means end
 */

size_t next_char( const char*, size_t off );

size_t next_token( const char* src, size_t off);

void lex_start( const char* );

void lex_end();

char* lex_next_token();


/*
 * @return first non space char
 */
char lex_get_char();

void lex_skip_char();

typedef struct S_Expression
{
    char* begin;
    char* end;
} S_Exp;       

S_Exp lex_next_exp();

#endif
